﻿function PromocionesPorConvocatoria() {
    this.PreInit = function () {

        var _parent = this;
        _parent.TituloModalForm = "Convocatoria";
        _parent.CssModalForm = {
            'top': "40%",
            'width': '800px',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        }

        _parent._Editar();
        _parent._Financiamiento();
        _parent._EliminarFinanciamiento();
        _parent._Eliminar();

        _parent._getCont().find("#nuevo").click(function () {
            _parent.Form();
        });

        _parent._getCont().find("#regresar").click(function () {
            window.location.href = URL_PAGE + "Administrador/Convocatoria";
        })
    }

    /**
    Eliminar el registro
    */
    this._EliminarFinanciamiento = function () {

        var _parent = this;

        _parent._getContList().off('.eliminar-financiamiento');
        _parent._getContList().on('click', '.eliminar-financiamiento', function (e) {
            e.preventDefault();
            var obj = $(this);

            var confirmacion = _parent._MensajeConfirmacion();
            confirmacion.titulo = "Financiamiento";
            confirmacion.contenido = "¿Esta seguro de eliminar el financiamiento?";


            confirmacion.yes = function () {
                jQuery.post(URL_PAGE + "Administrador/Convocatoria/EliminarFinanciamiento",
                                         {
                                             Id: obj.attr('data-Id')
                                         },
                             function (data) {

                                 confirmacion.getModal.modal('hide');
                                 _parent._MensajesOperacion("success",
                                                    "Registro eliminado",
                                                    "El financiamiento fue eliminado correctamente");
                                 _parent.List({ id: $("#Global_IdConvocatoria").val() });
                             }
                   , "json");
            };
            confirmacion.modal();
        });
    };


    /**
    Registrar Financiamiento
    */
    this._Financiamiento = function () {

        var _parent = this;

        _parent._getContList().off('.registrar-financiamiento');
        _parent._getContList().on('click', '.registrar-financiamiento', function (e) {
            e.preventDefault();
            var obj = $(this);
            //Hacemos un modal
            var modal = _parent._getModalV2();

            $.ajax({
                url: URL_PAGE + "Administrador/Convocatoria/IndexFinanciamiento",
                data: {
                    IdConvocatoriaProducto: obj.attr("data-IdConvocatoriaProducto"),
                    Id: obj.attr("data-IdFinanciamiento")
                },
                type: "post",
                success: function (html) {
                    modal.find(".modal-body").html(html);
                    //Caturamos el contenedor
                    cont = modal.find(".modal-body").find("#_Financiamiento");
                    contDetalle = modal.find(".modal-body").find("#_DetalleFinanciamiento");

                    //Ocultando el boton
                    modal.find(".modal-footer").find("#aceptar").hide();

                    modal.find(".modal-header").find("h2").html(obj.attr("data-NombreProducto"));
                    //Capturamos el script
                    jQuery.getScript(URL_PAGE + "Scripts/app/administrador/Financiamiento.js", function () {
                        _Financiamiento.prototype = new Mantenimiento();
                        var financiamiento = new _Financiamiento();
                        financiamiento.ContDetalleFinanciamiento = contDetalle;
                        financiamiento.IdFinanciamiento = obj.attr("data-IdFinanciamiento");
                        financiamiento.IdConvocatoriaProducto = obj.attr("data-IdConvocatoriaProducto");
                        financiamiento.Init(cont,
                        {
                            Register: URL_PAGE + "Administrador/Convocatoria/RegistrarFinanciamiento",
                            Form: URL_PAGE + "Administrador/Convocatoria/FormFinanciamiento"
                            //List: URL_PAGE + "Administrador/Convocatoria/List"
                        }
                        , "All");
                        financiamiento.Form({ Id: financiamiento.IdFinanciamiento });

                        modal.css({
                            'width': '950px',
                            'margin-left': function () {
                                return -($(this).width() / 2);
                            }
                        });

                        modal.on('hidden', function () {
                            _parent.List({ id: $("#Global_IdConvocatoria").val() });
                        })

                        modal.modal("show");
                    });
                }
            });


        });
    };


    /**
    Editar el registro
    */
    this._Editar = function () {

        var _parent = this;

        _parent._getContList().off('.editar');
        _parent._getContList().on('click', '.editar', function (e) {
            e.preventDefault();
            var obj = $(this);


            _parent.Form(
                {
                    id: obj.attr('data-Id')
                }
            )
        });
    };


    /**
    Eliminar el registro
    */
    this._Eliminar = function () {

        var _parent = this;

        _parent._getContList().off('.eliminar');
        _parent._getContList().on('click', '.eliminar', function (e) {
            e.preventDefault();
            var obj = $(this);

            var confirmacion = _parent._MensajeConfirmacion();
            confirmacion.titulo = "Promoción";
            confirmacion.contenido = "¿Esta seguro de eliminar la promoción?";


            confirmacion.yes = function () {
                jQuery.post(URL_PAGE + "Administrador/Convocatoria/EliminarConvocatoriaProducto",
                                         {
                                             Id: obj.attr('data-Id')
                                         },
                             function (data) {
                                _parent._getCont().find("#nuevo").show();
                                 // Normal process
                                 _parent._MensajesOperacion("success",
                                                    "Registro eliminado",
                                                    "La promocion fue eliminada correctamente");
                                 confirmacion.getModal.modal('hide');
                                 _parent.List({ id: $("#Global_IdConvocatoria").val() });
                             }
                   , "json");
            };
            confirmacion.modal();
        });
    };


    /**
    Editar el registro
    */
    this._EditarFinanciamiento = function () {

        var _parent = this;

        _parent._getContList().off('.editar-financiamiento');
        _parent._getContList().on('click', '.editar-financiamiento', function (e) {
            e.preventDefault();
            var obj = $(this);


            _parent.Form(
                {
                    id: obj.attr('data-Id')
                }
            )
        });
    };


    //Despues de cargar el formulario
    this._PostForm = function () {
        var _parent = this;
        _parent._InicializarVisualizacionControles();
        _parent.ValidacionCamposForm();
        _parent._CargarEventosForm();

        var form = _parent._getForm();
        form.find("#Conv_Codigo").val($("#Global_Conv_Codigo").val());
        form.find("#IdConvocatoria").val($("#Global_IdConvocatoria").val());
    }

    this._InicializarVisualizacionControles = function () {

        var _parent = this;
        var form = _parent._getForm();

    }

    this.ValidacionCamposForm = function () {

        var _parent = this;
        var form = _parent._getForm();
    }
    /**
    Carga de eventos
    */
    this._CargarEventosForm = function () {

        var _parent = this;
        var form = _parent._getForm();


        _parent._getContForm().find("#aceptar").click(function () {
            form.submit();
        })

        form.validationEngine({
            ajaxSubmit: true,
            onValidationComplete: function (form, status) {

                if (status) {
                    form.ajaxSubmit({
                        success: function (responseText, statusText, xhr, $form) {
                            // Hiding Add button to non Maestria products
                            var prod = _parent._getCont().find("#Global_Conv_EsMaestria").val();
                            
                            if (prod != "true") {
                                _parent._getCont().find("#nuevo").hide();
                            }

                            // Normal process
                            _parent._MensajesOperacion("success", "Registro grabado"
                            , "El registro de la promoción fue grabado correctamente");
                            _parent._getContForm().modal('hide');
                            _parent.List({ id: $("#Global_IdConvocatoria").val() });
                        }
                    });
                }
            }
        });




        if (form.find("#buscar-promocion").length != 0) {
            ////////////////////////////////////////////////////////////////////////////
            //Auto complete para la PROMOCION
            var autoCompletePromocion = _parent._AutoComplete();
            autoCompletePromocion.container = form.find("#buscar-promocion");
            autoCompletePromocion.input = form.find("#BusquedaPromocion");
            autoCompletePromocion.UrlBusqueda = URL_PAGE + "Shared/Catalogo/BuscarPromocion";

            autoCompletePromocion.Data = function () {
                return { cadena: autoCompletePromocion.input.val() };
            };

            autoCompletePromocion.CargarItems = function (item) {
                //console.log(item);            
                var autocompleteTemp = autoCompletePromocion.container.find("._Autocomplete");

                autocompleteTemp.find("#_nombrepromocion").html(item.NombrePromocion);
                autocompleteTemp.find("#_codigo").html(item.Prom_Codigo);
                autocompleteTemp.find("#_producto").html(item.NombreProducto);

                return autocompleteTemp.html();
            };

            autoCompletePromocion.MostrarItemSeleccionado = function (ui) {
                //Ocultar el campo de texto para la busqueda
                var busquedaForm = autoCompletePromocion.container.find("._Busqueda");
                busquedaForm.slideUp();

                var obj = autoCompletePromocion.container.find("._Resultado");
                var item = ui.item;

                obj.find("#lbl-nombrepromocion").html(item.NombrePromocion);
                obj.find("#lbl-codigo").html(item.Prom_Codigo);
                obj.find("#lbl-nombreproducto").html(item.NombreProducto);

                obj.find("#NombreLargo").val(item.NombreProducto);
                obj.find("#Prod_Codigo").val(item.Prod_Codigo);
                obj.find("#Prom_Codigo").val(item.Prom_Codigo);
                obj.slideDown();

                //buscado si ya hay una convocatoria anterior con el mismo producto
                $.ajax({
                    type: 'post',
                    url: URL_PAGE + "Shared/Catalogo/BuscarProductoConvocatoriaAnterior",
                    data: { prod_codigo: item.Prod_Codigo },
                    dataType: 'json',
                    success: function (data) {
                        form.find("#PuntajeMinimo").val(data.PuntajeMinimo);
                        form.find("#Moneda").val(data.Moneda);
                        form.find("#CostoAcademico").val(data.CostoAcademico);
                        form.find("#CostoAdicionales").val(data.CostoAdicionales);
                        form.find("#DescripcionCosto").html(data.DescripcionCosto);

                        //                        console.log(data);
                        //                        console.log(form);
                    }
                });
            };

            autoCompletePromocion.AutoCompletar();
        }

    }
}

$(document).ready(function () {

    _PAGE = function () {
        this.PromocionesPorConvocatoria = "";
    };

    //Para la informacion academica
    PromocionesPorConvocatoria.prototype = new Mantenimiento();
    _PAGE.PromocionesPorConvocatoria = new PromocionesPorConvocatoria();

    _PAGE.PromocionesPorConvocatoria.Init($("#_PromocionesPorConvocatoria"),
    {
        Register: URL_PAGE + "Administrador/Convocatoria/RegistrarPromocionesPorConvocatoria",
        Form: URL_PAGE + "Administrador/Convocatoria/FormPromocionesPorConvocatoria",
        List: URL_PAGE + "Administrador/Convocatoria/ListPromocionesPorConvocatoria"
    }
    , "Modal");

    //Cargando la lista de informacion académica
    _PAGE.PromocionesPorConvocatoria.List({ id: $("#Global_IdConvocatoria").val() });

});
